Skip to content

Latest commit

 

History

History
66 lines (56 loc) · 2.06 KB

File metadata and controls

66 lines (56 loc) · 2.06 KB

1669. Merge In Between Linked Lists

You are given two linked lists: list1 and list2 of sizes n and m respectively.

Remove list1's nodes from the ath node to the bth node, and put list2 in their place.

The blue edges and nodes in the following figure incidate the result:

Build the result list and return its head.

Example 1:

Input: list1 = [0,1,2,3,4,5], a = 3, b = 4, list2 = [1000000,1000001,1000002] Output: [0,1,2,1000000,1000001,1000002,5] Explanation: We remove the nodes 3 and 4 and put the entire list2 in their place. The blue edges and nodes in the above figure indicate the result. 

Example 2:

Input: list1 = [0,1,2,3,4,5,6], a = 2, b = 5, list2 = [1000000,1000001,1000002,1000003,1000004] Output: [0,1,1000000,1000001,1000002,1000003,1000004,6] Explanation: The blue edges and nodes in the above figure indicate the result. 

Constraints:

  • 3 <= list1.length <= 104
  • 1 <= a <= b < list1.length - 1
  • 1 <= list2.length <= 104

Solutions (Ruby)

1. Solution

# Definition for singly-linked list.# class ListNode# attr_accessor :val, :next# def initialize(val = 0, _next = nil)# @val = val# @next = _next# end# end# @param {ListNode} list1# @param {Integer} a# @param {Integer} b# @param {ListNode} list2# @return {ListNode}defmerge_in_between(list1,a,b,list2)removed_a=list1(1...a).eachdo |_| removed_a=removed_a.nextendremoved_b=removed_a.next(0..(b - a)).eachdo |_| removed_b=removed_b.nextendcurr=list2curr=curr.nextuntilcurr.next.nil?removed_a.next=list2curr.next=removed_blist1end
close